home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / utmisc2 / xfd113.lha / xfd / README
Text File  |  1996-04-08  |  19KB  |  396 lines

  1.                       XFD Package - Release 1.13
  2.                       ==========================
  3.  
  4. COPYRIGHT
  5. ---------
  6. All  parts  of  this  software  package  are  freely  distributable for
  7. noncommercial use.  If you redistribute XFD, you have to keep all files
  8. together.  All programs are copyright by their authors.
  9.  
  10. DISCLAIMER
  11. ----------
  12. The  authors  are  not  liable  for any changes made to any part of the
  13. package, or consequences thereof as they cannot be made responsible for
  14. damages  or  loss  of  data  directly  or  indirectly  caused  by their
  15. software.
  16.  
  17. AUTHORS
  18. -------
  19. Georg Hörmann          - Definition of XFD standard, xfdmaster.library,
  20.                          xfd#? tools, Assembler includes, some external
  21.                          decrunchers.
  22. Anders Melchiorsen     - 'C' includes, protos, pragmas.
  23. Dexter&Bartman/Abyss   - External decrunchers.
  24. WEPL                   - External decrunchers and Oberon includes.
  25. ???                    - External decrunchers.
  26. A. Van Helsing/X-Trade - External decrunchers.
  27. Psygore                - External decrunchers.
  28. Mr.Larmer/Wanted Team  - External decrunchers.
  29.  
  30. INTRODUCTION
  31. ------------
  32. Almost  every  Amiga  user  has  some  crunched files on his/her disks,
  33. either  Powerpacked docs or crunched demos, utilities or whatever.  But
  34. what to do when you need the files to be uncrunched, and you don't call
  35. the cruncher your own (or it doesn't support decrunching)?  Enters XFD.
  36.  
  37. FEATURES
  38. --------
  39. This  software  package allows you to decrunch almost every packed file
  40. known  on the Amiga.  It consists of the xfdmaster.library as the brain
  41. and a couple of programs that offer certain functions to the user.
  42.  
  43. The  xfdmaster.library is a standard Amiga shared, runtime library.  It
  44. works  with  Kickstart  V33+ and offers applications the possibility to
  45. directly support any crunched files.
  46.  
  47. Other  than the predecessor decrunch.library, the xfdmaster.library has
  48. a  more  flexible interface, offers the possibility to decrunch already
  49. loaded  program  segments,  supports  external  decrunchers, is able to
  50. unlink  so-called  4EB9-linked  files and can scan for crunched data in
  51. any memory area.
  52.  
  53. EXTERNAL DECRUNCHERS
  54. --------------------
  55. External  decrunchers  can  be easily written by any programmer who has
  56. knowledge  about the inner workings of a new cruncher.  That way almost
  57. everybody is able to keep the library up-to-date.  External decrunchers
  58. are  stored in "LIBS:xfd/" and xfdmaster.library loads them on startup.
  59. Please  check  out  your own "LIBS:xfd/" drawer and compare it with the
  60. latest  one included in this package.  The slaves from this package are
  61. always  the latest versions.  There exist old external decrunchers that
  62. are  no  longer  required,  please delete them from "LIBS:xfd/" to save
  63. diskspace AND memory.  They are mentioned in "LIBS:xfd/.README.FIRST"
  64.  
  65. ATTENTION
  66. ---------
  67. Although  I  clearly  stated  in the autodocs that external decrunchers
  68. have  to  be fully reentrant (which means they can handle several files
  69. within the same time), some externals are programmed not 100% safe.  If
  70. you  ever  have trouble with XFD, first disable the external slaves and
  71. then try again.  If there's still a problem, send me a bug report.
  72.  
  73. SUBMISSIONS
  74. -----------
  75. You are a programmer who has
  76. - developed external decrunchers for xfdmaster.library?
  77. - written applications that support xfdmaster.library?
  78. You have new crunchers that are not supported yet?
  79. Please send anything of the above to the following address:
  80.  
  81. Georg Hörmann
  82. Martinswinkelstraße 16c
  83. 82467 Garmisch-Partenkirchen
  84. Germany
  85.  
  86. THANKS
  87. ------
  88. Special  thanks  go  out  to  all the people who sent me new crunchers,
  89. external  decrunchers,  bug  reports  or  whatever.  You will find your
  90. names somewhere in the history.
  91.  
  92. TO DO
  93. -----
  94. xfdmaster.library:
  95. - Add new crunchers...
  96.  
  97. xfdDecrunch:
  98. - Fix scan problems with RAM-Disk. Hi Holger ;-)
  99. - Add/remove suffixes to/from filenames. Idea by Axel Folley, sorry
  100.   for not finishing that piece of code for about a year now.
  101.  
  102. HISTORY
  103. -------
  104. XFD 1.13 [xfdmaster.library 37.2]
  105. - Added segment support to Titanics Cruncher 1.1/1.2, Spike Cruncher,
  106.   ProPack, TurboSqueezer 6.1/8.0 and HQC Cruncher 2.0 slaves.
  107. - Added Master Cruncher 3.0 Data slave, added segment support to
  108.   Master Cruncher 3.0 slave and rewrote parts of the Master Cruncher
  109.   decrunch routines.
  110. - Added new version of xfdPatch with a serious bug fixed. Sorry folks!
  111. - Arhh! Bug fixed in the optimized Crunchmania routines added in 1.12.
  112.   Empty code hunks caused a system crash. Thanks to Holger Wessling
  113.   for the report and the example files.
  114. - Fixed little bug in the StoneCracker 4.04 Data length calculation.
  115.   No crash this time :-) Thanks to Holger again for the example file.
  116. - Added segment support to DragPack 2.52 slave.
  117. - Added XFDPFF_RELMODE flag support to the following slaves: Propack,
  118.   Imploder (Normal/Lib/Overlay) and CrunchMania (Normal/Lib/Simple)!
  119.   As these crunchers already allocate their hunks during LoadSeg(),
  120.   I wrote a hunk manager that checks the memory type of each loaded
  121.   hunk and switches to another area if neccessary.
  122. - Added segment support to Chryseis Cruncher 0.9 and ReloKit 1.0.
  123.   Finally I made it!! All internal reloc slaves support full segment
  124.   decrunching and relocation modes now :-))
  125. - Combined Powerpacker x.x Master/Normal to simple PowerPacker x.x
  126.   slaves. This saves memory and CPU time.
  127. - Added data scan support to LightPack 1.5 and TurtleSmasher 2.00
  128.   Data slaves. Changed CrunchMaster 1.0 type from data to address.
  129. - Added data scan support to ST Cruncher 1.0 Data slave. Now all
  130.   internal data slaves support data scanning!!
  131. - Added Super Cruncher 2.7 slave with buffer and segment support.
  132. - Added Ultimate Packer 1.1 slave with buffer and segment support.
  133. - Added Old ProPack (RNC) slave. Thanks to WEPL for the sourcecode
  134.   and the example files. This slave cannot handle XFDREL_#? as only
  135.   the first hunk is crunched and all others are already relocated at
  136.   decrunch time. Sorry!
  137. - Added SA/SC/SF/SP/SQ Cruncher slave. Here we have a big problem:
  138.   There exist different versions of the SA, SC and SP formats with
  139.   different crunch algorithms. Therefore these will only be scanned
  140.   for, but not decrunched. SF and SQ should work properly. Thanks to
  141.   WEPL for the sourcecode and the example files.
  142. - Added PowerPacker Patch 1.0 slave. This silly tool adds different
  143.   headers to standard PowerPacker 4.0 files. Thanks to Dave Jones
  144.   for sending that stuff.
  145. - Added ExeDescript 1.0 Linker to the internal linker brain. This
  146.   one is a bit special as it just adds a data hunk at the end of a
  147.   file with some text in it. To recognize this stuff, the whole file
  148.   must be in memory. Sorry, but the xfdm_MinLinkerSize field is of
  149.   no use any longer for this type of linker. Thanks to Dave Jones
  150.   for sending lots of example files.
  151.  
  152. XFD 1.12 [xfdmaster.library 37.1]
  153. - Fixed problem in ProPack slave. It may happen that some hunks are
  154.   not crunched in the RNC format but included as plain hunks. This has
  155.   not been supported correctly. Thanks to Dave Jones and John Aadnoy
  156.   for the example files.
  157. - Optimized decrunch speed of CrunchMania slave by factor 50 !!!
  158.   You won't see it with small files, but Holger Wessling sent me two
  159.   files that took several minutes to decrunch with the old routine
  160.   and about 4 seconds with the new one (the file had up to 140 hunks
  161.   and 6200 reloc entries at 700000 bytes). Thanks Holger.
  162. - Added lots of external decrunchers written by Mr.Larmer/Wanted Team.
  163.   Thanks for all the work you had with that stuff.
  164. - Added new utility called xfdPatch. Just use it!
  165. - Added an extra feature to Imploder and CrunchMania slaves:
  166.   they both will decrunch even some modified files now. Thanks to
  167.   Dave Jones for sending the 'The Party IV' 40k intros.
  168. - Added full GNU Packer 1.2 support. Thanks to Mr.Larmer/Wanted Team
  169.   for sending that stuff.
  170. - Added new version of xfdPatch that allows to set relocation modes.
  171. - Added support for TrashEliminator 1.0.
  172. - Added new version of xfdLibInfo.
  173. - Added new functions to xfdmaster.library: xfdScanData(),
  174.   xfdFreeScanList() and xfdObjectType(). The data scanner is based
  175.   on an idea by Holger Wessling. Thanks dude!
  176. - Added new fields to xfdBufferInfo and xfdSegmentInfo structures.
  177.   Read the autodocs for more details about the new behaviour of
  178.   xfdRecogBuffer()/xfdRecogSegment() concerning external slaves.
  179.   This was neccessary as a lot of people sent me files that made
  180.   some trouble with external slaves. Thanks to Axel Folley, Holger
  181.   Wessling, John Aadnoy and all the others for the example files.
  182. - Added new utility called xfdScan that supports the new data scan
  183.   routines.
  184. - Added data scan support and improved data recognition/testing to
  185.   ANC, SoundTracker Song, CrunchMania, DragPack 2.52, GNU Packer,
  186.   IAM (ICE!/ATM5), PMC, StoneCracker, XPK, ProPack, PackIt and
  187.   Imploder data slaves.
  188. - Added new versions of xfdList, xfdDecrunch and xfdPatch.
  189. - Added data scan support for PowerPacker PP20 data. This code is
  190.   a real data analyzer that checks data for proper decrunchability.
  191.   The crypted data PX20 however can not be scanned in deep mode.
  192. - Added segment support to QuickPowerPacker 1.0.
  193. - Added new function xfdInitScanHook() for easy hook management.
  194. - Added ProPackExe external decruncher. Thanks to WEPL for sending
  195.   this new format.
  196.  
  197. XFD 1.11 [xfdmaster.library 36.4]
  198. - Added new versions of xfdDecrunch, xfdList and xfdUnlink with
  199.   several bug fixes and/or new features.
  200. - Fixed support for Hunk_Reloc32Short in xfdTestHunkStructureFlags(),
  201.   xfdRelocate() and xfdStripHunks(). Thanks to WEPL for the report.
  202. - Added new/updated external decrunchers written by WEPL (thanks
  203.   for all your work): Ice_TSM, SSUR, TPWM, BOND, CMP1, LOB, DeCloner.
  204. - Added Oberon include file for xfdmaster.library. Thanks again to
  205.   WEPL for that stuff. Please note that it is written for XFD 1.07
  206.   and therefore a bit old, but you may modify it for your needs.
  207. - Added external decruncher for 4Vx written by Psygore. Thanks to
  208.   Holger Wessling for sending it.
  209. - Added full segment decrunch support to Imploder, Imploder Library
  210.   and Imploder Overlay slaves. No dirty jump-in hacks, but a real
  211.   emulation that also corrects the hunktable entries of overlays.
  212. - Fixed PowerPacker 3.0/4.0 Overlay segment decrunching code.
  213.   The entries in the hunktable haven't been updated.
  214.  
  215. XFD 1.10 [xfdmaster.library 36.3]
  216. - Added recognition and unlink code for Glue 2.2 and Glue 2.3 text
  217.   linkers. You will get the text file and the original executable
  218.   as a result after unlinking such files. Thanks to Markus Schmall
  219.   and Dave Jones for the example files.
  220. - Finally fixed Imploder stuff to work 100% correctly. The new
  221.   method is a bit slower, but doesn't waste any memory any longer.
  222.   The length calculation of the old one was based on a rough guess,
  223.   now it's counted byte by byte. Corrupted data is detected now and
  224.   won't lead to a big crash any longer. The new code also recognizes
  225.   if a hunk was originally data or code.
  226. - Added support for Imploder Overlay files. These have been only
  227.   recognized, but not decrunched. Now the new length calculation
  228.   made it easy to finally implement that stuff. Thanks to Axel
  229.   Folley for all the example files.
  230. - Added new version of xfdDecrunch.
  231.  
  232. XFD 1.09 [xfdmaster.library 36.1]
  233. - Oops! XPK slave set password length to 0. This caused some
  234.   trouble when decrunching XPK encrypted files. I forgot to
  235.   set MaxSpecialLen to -1 as XPK has unlimited password lengths.
  236.   Thanks to the guy (sorry, forgot your name) who called me.
  237. - Fixed xfdTestHunkStructure[New]() and xfdRelocate().
  238.   Those two calls now only support hunk types that may really
  239.   exist in load files and no longer any weird linker stuff.
  240.   Added full support for hunk_reloc32short ($3f7/$3fc).
  241. - Added xfdTestHunkStructureFlags() with XFDTHB_NOOVERLAYS
  242.   to force an error if a file is overlayed.
  243. - Added xfdStripHunks() as an easy possibility to remove
  244.   hunk_name, hunk_symbol and/or hunk_debug from files.
  245. - Extended xfdSlave and xfdMasterBase structures.
  246.   Internal slaves have an ID now and can be replaced by
  247.   external slaves. Minimum buffer size to recognize a
  248.   crunched file can be specified for every slave now.
  249.   The largest buffer size is stored in xfdMasterBase and
  250.   can be used as buffer size for recognition purposes.
  251.   Thanks to Dave Jones and the other guy (see above) for
  252.   the inspiration.
  253. - Added new versions of xfdDecrunch and xfdLibInfo.
  254. - Moved external Chryseis slave inside library.
  255. - Added new version of xfdList.
  256. - Fixed defines in xfdmaster.h from $XYZ to 0xXYZ.
  257. - Added external decrunchers: AXIS, LOB and SF written by
  258.   A. Van Helsing/X-TraDe. Thanks to Holger Wessling for
  259.   sending them to me.
  260. - Fixed ProPack slave. Recognizes another executable header
  261.   now and doesn't crash with several hunk_bss any more.
  262.   Thanks to Markus Schmall for reporting the problem.
  263. - Fixed StoneCracker 4.04 slave. Forgot to support empty
  264.   code and data hunks as old compilers produce them.
  265.   Thanks to Dave Jones for the example file.
  266. - Added StoneCracker 4.03 Data slave and replaced SC 4.04
  267.   decrunch code by the optimized version from 'Cozine'.
  268. - Added QuickPowerPacker 1.0 slave.
  269.   Thanks to Dave again for sending this stuff.
  270. - Added xfdAllocObject() and xfdFreeObject() as a replacement
  271.   for Alloc#?Info() and Free#?Info().
  272. - Added xfdRecogLinker() and xfdUnlink() to support so-called
  273.   4EB9-Linkers and their clones.
  274. - Fixed problem with some PowerPacker 4.0 files. It might have
  275.   happened in one special case that one byte of the processed
  276.   reloc hunk was overwritten before it was reprocessed.
  277.   Using a one-byte prefetch mechanism now fixes this bug.
  278. - Added xfdm_MinLinkerSize field in xfdMasterBase structure.
  279. - Added recognition for 4EB9, 4EF9, UFO and XLink linkers to
  280.   the internal linker brain.
  281. - Added unlink code for 4EB9, 4EF9, UFO and XLink linkers.
  282. - Fixed another problem with PowerPacker 4.0 files. If hunks
  283.   are located in chipmem, PP sets the qualifier in the hunk
  284.   header AND in the hunks themselves. OS 2.0+ doesn't like
  285.   this behaviour very much and crashes immediately. The flag
  286.   will therefore be deleted in the hunks now.
  287.   Thanks to Axel Folley for sending me an example file.
  288. - Fixed problem with SoundTracker songs. Some clever game
  289.   coders use the same identifier (PACK) for their files, but
  290.   certainly another algorithm. I use an enhanced recognition
  291.   now that checks the uncrunched length for valid song sizes.
  292.   Thanks again to Axel Folley for all the example files.
  293. - Added the tool xfdUnlink to the package. This is just a
  294.   simple interface for unlinking linked files.
  295. - Added second type of 4EB9 linker and fixed recognition
  296.   for UFO linker.
  297. - Fixed Imploder decrunch code to support modified files too.
  298.   Some guys tried to prevent XFD and also the Imploder itself
  299.   from unpacking files by changing a data to a code hunk.
  300.  
  301. XFD 1.08 [xfdmaster.library 35.1]
  302. - Added new feature to xfdmaster.library (now version 35):
  303.   Crunchers that require a 16/32 bit key for decrunching are
  304.   supported now. Only neccessary for ProPack (RNC) at the
  305.   moment.
  306. - Added new versions of xfdDecrunch and xfdLibInfo that
  307.   support the new feature.
  308. - Added full support for ProPack, formerly called RNC.
  309.   Now also decrunches executables and key-locked data files.
  310.   Moved the external decruncher inside the library.
  311. - Added support for TetraPack 1.1.
  312. - Added support for HQC Compressor 1.00.
  313. - Added external decrunchers for LZWH and GraftGold.
  314. - Added support for TSK Cruncher, LightPack 1.5 and
  315.   SoundTracker Cruncher 1.0 Exe/Data files.
  316. - Added new tool to the package: HackProPack. This makes it
  317.   possible to decrunch key-locked ProPack data files.
  318. - Re-added Kickstart 1.2/1.3 support to xfdDecrunch.
  319.   Hope everybody is happy now, so am I.
  320. - Added support for segment decrunching to the following
  321.   slaves: DragPack 1.0, StoneCracker 4.00/4.01/4.04,
  322.   CrunchMania Normal/Library/Simple, TNM Cruncher 1.1.
  323. - Revised XPK external decruncher and moved it inside
  324.   xfdmaster.library.
  325. - Moved PMC external decruncher inside the library.
  326. - Debugged arp.library stuff in xfdDecrunch, xfdList
  327.   and HackProPack. Some arp routines behave different from
  328.   dos v37, but it wasn't documented anywhere.
  329. - Added segment support to IAM Packer 1.0 and PackIt 1.0.
  330.  
  331. XFD 1.07 [xfdmaster.library 34.1]
  332. - Added new sublibs for SSUR, TPWM and TSM crunchers.
  333.   Thanks to WEPL for sending them.
  334. - Added RNC2 support to the RNC external decruncher.
  335.   Thanks to WEPL again for sending me the sourcecode.
  336.  
  337. XFD 1.06 [xfdmaster.library 34.1]
  338. - Increased library version to 34 because of new features.
  339.   The V34 library is fully downward compatible to V33 libraries.
  340. - Rewritten xfdGetErrorText() function with lots of new error codes.
  341. - Added xfdTestHunkStructureNew() routine that returns detailed
  342.   error codes.
  343. - Added xfdRelocate() routine for better segment list support.
  344. - Extended xfdSegmentInfo structure for relocation mode support.
  345. - Overworked autodocs for more detailed information.
  346. - Overworked whole 'C' support stuff (includes, protos, pragmas).
  347. - Updated Assembler support files.
  348. - Added external decruncher for PMC files.
  349. - Added support for recognition and decrunching of segments
  350.   to the following slaves:
  351.   - PowerPacker 2.3 command files (all modes)
  352.   - PowerPacker 3.0 command files (all modes)
  353.   - PowerPacker 4.0 command files (all modes)
  354. - Added new version of xfdLibInfo with extended information.
  355. - Added external decrunchers for RNC and FIRE files. Thanks to
  356.   Dexter&BartMan/Abyss for sending me this stuff.
  357. - Added ATN! support to xfdmaster.library. Dexter/Abyss sent me
  358.   an external for this one, but it's just a FImp clone, so I
  359.   added it to the internals.
  360.  
  361. XFD 1.05 [xfdmaster.library 33.6]
  362. - Added decrunch support for StoneCracker 4.04 executables.
  363. - Added external decruncher for XPK files.
  364.  
  365. XFD 1.04 [xfdmaster.library 33.4]
  366. - Added 'C' includes, protos, pragmas. Thanks to Anders Melchiorsen
  367.   for typing all this stuff. Thanks to Brice Allenbrand too. He also
  368.   typed some 'C' stuff, but Anders was 3 days faster. Sorry!
  369. - Removed arp.library from the package as everybody has it anyway.
  370. - Added decrunch support for StoneCracker 4.04 data & address files.
  371.  
  372. XFD 1.03 [xfdmaster.library 33.3]
  373. - Added new version of xfdDecrunch with extended features.
  374.  
  375. XFD 1.02 [xfdmaster.library 33.3]
  376. - Did astonishing speed optimization to CrunchMania decruncher. All
  377.   files with lots of relocs will decrunch about 30 times faster. Thanks
  378.   to Markus Schmall who sent me a file (GadToolsBox with over 8000 [!]
  379.   reloc entries) that took 90 seconds (!) before that code cleanup and
  380.   3 seconds afterwards. Actually he thought XFD would crash, but who
  381.   waits 90 seconds ??? ;-)
  382. - Added Chryseis 0.9 decruncher. This one is implemented as external
  383.   decruncher including sourcecode as an example on how to code that
  384.   kind of thing.
  385. - Added File Imploder (FImp) decruncher.
  386. - Added new version of xfdDecrunch with lots of new features.
  387.  
  388. XFD 1.01 [xfdmaster.library 33.2]
  389. - Added asm includes, autodocs and fd files.
  390. - Final fixes in password code.
  391. - Added new versions of xfdDecrunch and xfdLibInfo.
  392. - Added support for external decrunchers.
  393.  
  394. XFD 1.00 [xfdmaster.library 33.1]
  395. - First public release.
  396.